﻿using T.FAS.Runtime.Base.Entity;

namespace T.FAS.Runtime.Action.ExpressionPlugin
{
    public static class TSchemaExtension
    {
        /// <summary>
        /// 是否需要隐藏列
        /// 1、判断该attr是否为多语言字段，如果为辅助语言列且为设计时，隐藏辅助列
        /// 2、判断是否为mask掩码字段，是则隐藏
        /// </summary>
        /// <param name="attribute"></param>
        /// <param name="isDev">是否设计时，true:设计时 false:运行时</param>
        /// <returns>true:需要隐藏，false:不需要</returns>
        public static bool IsNeedHideField(this TAttribute attribute, bool isDev)
        {
            if (attribute.ExtProperties != null)
            {
                if (attribute.ExtProperties.ContainsKey("IsParalanguage")
                   && bool.TryParse(attribute.ExtProperties["IsParalanguage"]?.ToString(), out bool isParalang))
                {
                    //如果为辅助语言列attr
                    if (isParalang && isDev)
                    {
                        return true;
                    }
                }
                if (attribute.ExtProperties.ContainsKey("IsMaskingColumn")
                   && bool.TryParse(attribute.ExtProperties["IsMaskingColumn"]?.ToString(), out bool isMaskingColumn))
                {
                    //如果为mask掩码列attr
                    if (isMaskingColumn && isDev)
                    {
                        return true;
                    }
                }
            }
            return false;
        }
    }
}
